package com.zb.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zb.entity.ZjFactory;
import com.zb.entity.ZjWorkModule;
import com.zb.vo.FactoryListSelectVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * <p>
 * 厂商表 Mapper 接口
 * </p>
 *
 * @author WEN
 * @since 2024-02-27
 */
@Repository
public interface ZjFactoryMapper extends BaseMapper<ZjFactory> {

    /**
     * 查询品牌商家是否重复
     * @param custAccId 商家ID
     * @param id 品牌商家ID
     * @param name 品牌商家名称
     * @return
     */
    Integer existByName(@Param("custAccId") Long custAccId, @Param("id") Long id, @Param("name") String name);

    /**
     * 查询工单标识是否重复
     * @param custAccId 平台ID
     * @param id 品牌商家ID
     * @param orderIdentifierNo 工单标识
     * @return
     */
    Integer existOrderIdentifierNo(@Param("custAccId") Long custAccId, @Param("id") Long id, @Param("orderIdentifierNo") String orderIdentifierNo);

    /**
     * 获取品牌商家列表
     * @param custAccId 商家ID
     * @param selectVo 搜索对象
     * @return
     */
    List<ZjFactory> getList(@Param("custAccId") Long custAccId, @Param("selectVo") FactoryListSelectVo selectVo);

    /**
     * 获取品牌商家列表总记录数
     * @param custAccId 商家ID
     * @param selectVo 搜索对象
     * @return
     */
    long getListCount(@Param("custAccId") Long custAccId, @Param("selectVo") FactoryListSelectVo selectVo);

    /**
     * 根据品牌商家ID获取单号标识
     * @param id 品牌商家ID
     * @return
     */
    String getOrderIdentifierNoById(@Param("id") Long id);

    /**
     * 根据品牌商家ID获取服务商id
     * @param id 品牌商家ID
     * @return
     */
    Page<ZjWorkModule> getCustAccModuleInfo(Page<ZjWorkModule> page, @Param("id") Long id);
}
